package com.common.excel.excelinfo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.metadata.BaseRowModel;
import com.common.excel.ExcelValueNotNull;
import com.common.excel.ExcelValueTypeCheck;
import com.common.vo.BaseVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 案件 excel info
 *
 * @author johnny
 * @create 2021-05-19 1:31 下午
 **/
@Data
public class CaseExcelInfo extends BaseRowModel {

    /**
     * 部门受案号
     */
    @ExcelProperty(value = "部门受案号", index = 0)
    @ExcelValueNotNull(message = "部门受案号不能为空", columnName = "部门受案号")
    private String caseNum;

    /**
     * 案件名称
     */
    @ExcelProperty(value = "案件名称", index = 1)
    @ExcelValueNotNull(message = "案件名称不能为空", columnName = "案件名称")
    private String caseName;


    /**
     * 案件类别 字典表 里
     */
    @ExcelProperty(value = "案件类别", index = 2)
    @ExcelValueNotNull(message = "案件类别不能为空", columnName = "案件类别")
    private String caseType;

    /**
     * 承办人 ID 通过导入 personalName 进行查询的
     */
    private Long personalId;


    /**
     * 承办人 Name
     */
    @ExcelProperty(value = "承办人", index = 3)
    @ExcelValueNotNull(message = "承办人不能为空", columnName = "承办人")
    private String personalName;

    /**
     * 办案单元
     */
    @ApiModelProperty(value = "办案单元")
    @ExcelProperty(value = "办案单元", index = 4)
    private String caseCell;


    /**
     * 承办部门Id  通过导入 caseDepartmentName 进行查询的
     */
    private Long caseDepartmentId;

    /**
     * TODO 待确认 是否和承办人的部门要一致
     */
    //@ExcelProperty(value = "承办部门", index = 5)
    private String caseDepartmentName;

    /**
     * 承办 单位 字典维护  检验一下 目前只有 锡山区院
     */
    @ExcelProperty(value = "承办单位", index = 5)
    private String caseUnit;

    /**
     * 受理日期
     * 格式 2018/7/16
     */
    @ExcelProperty(value = "受理日期", index = 6)
    @ExcelValueTypeCheck(typeClass = Date.class, message = "格式错误需要(yyyy/MM/dd)", columnName = "受理日期", dateFormate = "yyyy/MM/dd")
    private Date caseAcceptDate;

    /**
     * 办案状态
     * 采用字典 流程结束、裁判结果审查、裁判结果审查、全案不起诉
     */
    @ExcelProperty(value = "办案状态", index = 7)
    @ExcelValueNotNull(message = "办案状态不能为空", columnName = "办案状态")
    private String caseStatus;

    /**
     * 犯罪类型
     */
    @ExcelProperty(value = "犯罪类型", index = 8)
    private String caseCrimeType;

    //    /**
//     * 承办检察官身份   参照岗位  个人档案关联的岗位名称
//     */
//    @ExcelProperty(value = "承办检察官身份", index = 10)
    private String casePersonalJob;

    /**
     * 当前阶段
     * 参照字典
     */
    @ExcelProperty(value = "当前阶段", index = 9)
    private String caseCurrentStage;

    /**
     * 到期 日期
     */
    @ExcelProperty(value = "到期日期", index = 10)
    @ExcelValueTypeCheck(typeClass = Date.class, message = "格式错误需要(yyyy/MM/dd)", columnName = "到期日期", dateFormate = "yyyy/MM/dd")
    private Date caseExpireDate;

    /**
     * 完成日期
     */
    @ExcelProperty(value = "完成日期", index = 11)
    @ExcelValueTypeCheck(typeClass = Date.class, message = "格式错误需要(yyyy/MM/dd)", columnName = "完成日期", dateFormate = "yyyy/MM/dd")
    private Date caseFinishDate;

    /**
     * 办案天数
     */
    @ExcelProperty(value = "办案天数", index = 12)
    @ExcelValueTypeCheck(typeClass = Long.class, message = "格式错误需要 整形", columnName = "办案天数")
    private String caseNumberDays;

    /**
     * 案件 是否公开
     * 是
     * 否
     */
    @ExcelProperty(value = "是否公开", index = 13)
    private String caseIsPublic;

    /**
     * 办结 日期
     * 2018/7/25
     */
    @ExcelProperty(value = "办结日期", index = 14)
    @ExcelValueTypeCheck(typeClass = Date.class, message = "格式错误需要(yyyy/MM/dd)", columnName = "办结日期", dateFormate = "yyyy/MM/dd")
    private Date caseEndDate;


    /**
     * 办案 日期
     * 2018/7/25
     */
    @ExcelProperty(value = "办案日期", index = 15)
    @ExcelValueTypeCheck(typeClass = Date.class, message = "格式错误需要(yyyy/MM/dd)", columnName = "办案日期", dateFormate = "yyyy/MM/dd")
    private Date caseHandleDate;
}